Comparison of assemblers
This is a list of assemblers: computer programs that translate ("assemble") assembly language source code into binary programs.
x86 assemblers
These are the x86 Assemblers for Intel 80x86 architecture microprocessors
Assembler |
OS |
Open source |
License |
x86-64 |
Active Development |
A86/A386 |
Windows, DOS |
No |
Proprietary |
No |
No |
ACK |
Linux, Minix, Unix-like |
Yes |
BSD since 2003 |
No |
1985-?[1] |
Arrowsoft Assembler |
DOS |
No |
Public Domain |
No |
No |
IBM ALP |
OS/2 |
No |
Proprietary |
No |
No |
AT&T |
Unix System V |
No |
Proprietary |
No |
1985-?[2] |
Bruce D. Evans' as86 |
Minix 1.x, 16-bit part in Linux |
Yes |
GPL |
No |
1988-2001[3] |
Digital Research ASM86 |
CP/M-86, DOS, Intel's ISIS |
No |
Proprietary |
No |
1978-1992 |
DevelSoftware Assembler |
Windows, Linux, Unix-like |
No |
Free |
listed, n/a |
Yes |
FASM |
Windows, DOS, Linux, Unix-like |
Yes |
BSD |
Yes |
Yes |
GAS |
Unix-like, Windows, DOS, OS/2 |
Yes |
GPL |
Yes |
Since 1987 |
GoAsm |
Windows |
No |
Free |
Yes |
Yes |
HLA |
Windows, Linux, FreeBSD, Mac OS X |
Yes |
Public domain |
No |
Yes |
JWASM |
Windows, DOS, Linux, FreeBSD, OS/2 |
Yes |
Sybase Open Watcom Public License |
Yes |
Yes |
LZASM |
Windows, DOS |
No |
Free |
No |
No |
MASM |
Windows, DOS, OS/2 |
No |
Microsoft EULA |
Yes |
Since 1981[4] |
Mical a86 |
Unix, DOS, PC/IX |
Yes |
? |
No |
1982-1984[5] |
NASM |
Windows, Linux, Mac OS X, DOS, OS/2 |
Yes |
BSD |
Yes |
Since 1996 |
Tim Paterson's ASM |
86-DOS, DOS DEBUG |
No |
Proprietary |
No |
1980-1983 |
POASM |
Windows, Windows Mobile |
No |
Free |
Yes |
Yes |
SLR's OPTASM |
DOS |
No |
Proprietary |
No |
No |
TASM |
Windows, DOS |
No |
Proprietary |
No |
?[6] |
WASM |
Windows, DOS, OS/2 |
Yes |
Sybase Open Watcom Public License |
No |
? |
TCCASM |
Unix-like, Windows |
Yes |
LGPL |
Yes |
Yes |
Xenix |
Xenix 2.3 and 3.0 (before 1985) |
No |
Proprietary |
No |
1982-1984 |
Yasm |
Windows, DOS, Linux, Mac OS X, Unix-like |
Yes |
BSD |
Yes |
Yes |
- ^ Part of the Minix 3 source tree, but without obvious development activity. The full source history is available.
- ^ Developed by Interactive in 1986 when they ported System V to Intel iAPX286 and 80386 architectures. Archetypical of ATT syntax because it was used as reference for GAS. Still used for The SCO Group's products, Unixware and OpenServer.
- ^ Home site does not appear active any more. Also offered as part of FreeBSD Ports, in bcc-1995.03.12.
- ^ Active and supported, but not advertised.
- ^ Developed in 1982 at MIT as a cross-assembler, it was picked up by Interactive in 1983 when they developed PC/IX under IBM contract. The syntax was later used as base for ACK assembler, to be used in Minix 1.x toolchain.
- ^ Part of the C++Builder Tool Chain, but not sold as a stand-alone product, or marketed since the CodeGear spin-off; Borland was still selling it until then. Version 5.0, the last, is dated 1996.
- ^ Turbo Assembler was developed as 'Turbo Editasm' by Uriah Barnett from Speedware Inc (Sacramento, CA) between 1984 and 1987. It was later sold to (or marketed by) Borland as their Turbo Assembler.
Multiple target assemblers
GNU Assembler (gas): GPL: many target instruction sets including ARM architecture, Atmel AVR, 80x86 architecture, Freescale 68HC11, Freescale v4e, Motorola 68k, TI MSP430, Zilog Z80
ASxxxx Cross Assembler (part of the Small Device C Compiler project): GPL: several target instruction sets including Intel 8051, Zilog Z80, Freescale 68HC08, PIC microcontroller
Vasm portable and retargetable assembler: Target instruction sets including 680x0, Coldfire, PowerPC, C16x/ST10, 6502, Zilog Z80.
The Amsterdam Compiler Kit (ACK) targets many architectures of the 1980s, including 6502, 6800, 680x0, ARM, x86, Zilog Z80 and Z8000.
Other assemblers
References
- ^ COMPASS is actually a family of assemblers for disparate machines.